package cn.zhangbo.dao.po;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

import org.springframework.stereotype.Component;

import lombok.Getter;
import lombok.Setter;

/**
 * <pre>
 * &#64;Entity  声明类为实体或表。
&#64;Table  声明表名。
&#64;Basic  指定非约束明确的各个字段。
&#64;Embedded   指定类或它的值是一个可嵌入的类的实例的实体的属性。
&#64;Id 指定的类的属性，用于识别（一个表中的主键）。
&#64;GeneratedValue 指定如何标识属性可以被初始化，例如自动、手动、或从序列表中获得的值。
&#64;Transient  指定的属性，它是不持久的，即：该值永远不会存储在数据库中。
&#64;Column 指定持久属性栏属性。
&#64;SequenceGenerator  指定在@GeneratedValue注解中指定的属性的值。它创建了一个序列。
&#64;TableGenerator 指定在@GeneratedValue批注指定属性的值发生器。它创造了的值生成的表。
&#64;AccessType 这种类型的注释用于设置访问类型。如果设置@AccessType（FIELD），则可以直接访问变量并且不需要getter和setter，但必须为public。如果设置@AccessType（PROPERTY），通过getter和setter方法访问Entity的变量。
&#64;JoinColumn 指定一个实体组织或实体的集合。这是用在多对一和一对多关联。
&#64;UniqueConstraint   指定的字段和用于主要或辅助表的唯一约束。
&#64;ColumnResult   参考使用select子句的SQL查询中的列名。
&#64;ManyToMany 定义了连接表之间的多对多一对多的关系。
&#64;ManyToOne  定义了连接表之间的多对一的关系。
&#64;OneToMany  定义了连接表之间存在一个一对多的关系。
&#64;OneToOne   定义了连接表之间有一个一对一的关系。
&#64;NamedQueries   指定命名查询的列表。
&#64;NamedQuery 指定使用静态名称的查询。
 * </pre>
 * </p>
 * (可填，此类型设计的详细描述).
 *
 * @see (可填，引用或参考其他类型资源，如: {@link java.util.Properties}).
 * @author zhangbo
 * @since 1.0.0
 */
@Entity
@Component
@Setter
@Getter
public class Student implements Serializable {
    /**
     * (必填，请用一句话描述此变量表示什么).
     *
     * @since 1.0.0
     */
    private static final long serialVersionUID = 6546371L;
    @Id
    @GeneratedValue
    private Long id;
    private String name;
    private String idCardNumber;
    private int sex;
    private int age;
    private Date createDatetime;
    private Date updateDatetime;
    private String address;
    private String phone;
    private String email;
    private String extraContact;
}
